﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.EnlaceDatos.SqlServer;
using AjaxControlToolkit;
namespace vudu.PaginasWeb.G6Pensum
{
    public partial class ListarPensum : System.Web.UI.Page
    {
        
        protected void Page_Load(object sender, EventArgs e)
        {

            try
            {
                //Obejto del tipo sesion
                string miRol = (string)Session["rol"];
                if (miRol != "Escuela")
                    Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
                Escuela miEscuela = (Escuela)Session["Usuario"];
            
                nombreEscuela.Text ="Escuela: "+ miEscuela.NombreEscuela;
                Session["idMiEscuela"] = miEscuela.IdEscuela;
                CargaPensumActivo(miEscuela);
                CargaPensumsInactivos(miEscuela);
            }
            catch
            {
                mensaje.Text = "Error: no se puede conectar con la base de datos";
                mensaje.CssClass = "transaccionFallida";
                mensaje.Visible = true;
            
            }
        }

        //metodo encargado de mostrar el pensum activo de la escuela
        public void CargaPensumActivo(Escuela miEscuela)
        {
            Pensum elActivo = new Pensum();
            elActivo.IdPensum = miEscuela.ConsultarPensumActivoEscuela(miEscuela);
            elActivo.PeriodosActivos = elActivo.ConsultarPeridosAcademicos(elActivo.IdPensum);

            TableRow fila = new TableRow();
            //se crea el boton que ejecuta la accion de 
            Button btnVerPensum = new Button();
            btnVerPensum.ID = elActivo.IdPensum.ToString();
            btnVerPensum.Text = "Ver Pensum";
            btnVerPensum.CssClass="boton";
            btnVerPensum.Click += new System.EventHandler(VerPensum);
            TableCell campoBoton = new TableCell();
            campoBoton.Controls.Add(btnVerPensum);
            //se crea la celda donde estaran todos los periodos academicos que estuvo vigente
            TableCell campoCabera = new TableCell();
            Label titulo = new Label();
            titulo.ID = "campoCabera";
            titulo.Text = "Periodos academicos del pensum : " + "<br/>" +
                          ListaPeriodosAcademicos(elActivo.PeriodosActivos);
            campoCabera.Controls.Add(titulo);
            campoCabera.Attributes.Add("style", "padding:5px");
            //se agregan las celdas con su contenido y posteriormente la fila
            fila.Controls.Add(campoCabera);
            fila.Controls.Add(campoBoton);
            TablePensumActivo.Rows.Add(fila);
        }

        //metodo encargado de listar todos los pensum inactivos de la escuela
        public void CargaPensumsInactivos(Escuela miEscuela)
        {
            //busca y guarda todos los pensum inactivos de una escuela
            miEscuela.ListaPensum = miEscuela.ConsultarPensums(miEscuela);
            foreach (Pensum inactivo in miEscuela.ListaPensum)
            {
                inactivo.PeriodosActivos = inactivo.ConsultarPeridosAcademicos(inactivo.IdPensum);
            }

            //aqui se imprime el resultado obtenido de la busqueda anterior en forma de tabla
            foreach (Pensum elInactivo in miEscuela.ListaPensum)
            {
                //se crea la fila de la tabla
                TableRow fila = new TableRow();
                Button btnVerPensum = new Button();
                btnVerPensum.ID = elInactivo.IdPensum.ToString();
                btnVerPensum.Text = "Ver Pensum";
                btnVerPensum.CssClass = "boton";
                btnVerPensum.Click += new System.EventHandler(VerPensum);
                //se crea la celda donde estara el boton
                TableCell campoBoton = new TableCell();
                campoBoton.ID = "campoBoton" + (elInactivo.IdPensum * 2).ToString();
                campoBoton.Controls.Add(btnVerPensum);
                //se crea la celda donde estaran todos los periodos academicos que estuvo vigente
                TableCell campoCabera = new TableCell();
                Label titulo = new Label();
                titulo.ID = "campoCabecera" + (elInactivo.IdPensum * 2).ToString();
                titulo.Text = "Periodos academicos que tuvo en vigencia : " + "<br/>" +
                          ListaPeriodosAcademicos(elInactivo.PeriodosActivos);
                campoCabera.Controls.Add(titulo);
                campoCabera.Attributes.Add("style", "padding:5px");
                //se agregan las celdas con su contenido y posteriormente la fila
                fila.Controls.Add(campoCabera);
                fila.Controls.Add(campoBoton);
                TablePensumInactivo.Rows.Add(fila);
            }
        }

        //metodo encargado de listar y concatenar los periodos academicos para ser impresos en formato html
        public string ListaPeriodosAcademicos(List<String> misPeriodosVigentes)
       {
            String fechaPeriodoAcademico = " ";
            foreach (String i in misPeriodosVigentes)
            {
                fechaPeriodoAcademico = fechaPeriodoAcademico + i + "<br/>";

            }
            return fechaPeriodoAcademico;
        }

        //metodo encargado de ejecutar la accion del boton
        public void VerPensum(object sender, EventArgs e)
       {
           Button botonPresionado = (Button)sender;
           Session["idMiPensum"] = Convert.ToInt32(botonPresionado.ID);
           Response.Redirect("../G6Pensum/ConsultarPensum.aspx");
       }
    }
 }